Video content is often compressed in order to save bandwidth during distribution. Some video compression standards, such as MPEG-2 and MPEG-4, part 10 (also known as AVC or h.264), utilize temporal compression. An example of temporal compression is encoding the image in a region, such as a frame or a portion of a frame, by referring to an earlier and/or later region. For instance, the image in a region may be encoded by the following three components: (1) a reference to an earlier region, (2) a motion vector, which specifies how the image from the earlier region should be moved, and (3) a residual error region that indicates how the image created from components (1) and (2) should be further modified. Encoding in this manner often requires less data than specifying the image without reference to an earlier region.
Regions that specify an image without reference to any other images are referred to as intra-coded. Intra-coded regions provide an initial image that temporally compressed regions may reference. Intra-coding may also save space. For example, the first image of a new scene may differ significantly from previous images. As a result, the above-referenced motion vector and residual error region may require more data to describe the image than would intra-coding and may also result in a greater loss of quality than intra-coding.
Where an intra-coded region is a whole frame, the frame is often referred to as an I-frame. (The “I” stands for intra-coded.) Non-intra-coded frames are often referred to as P-frames or B-frames. P-frames, or forward predicted frames, are frames that refer to an earlier frame in order to specify an image. (The “P” stands for predictive.) The three components described in the example above may constitute a P-frame. B-frames are frames that may refer to both an earlier frame and a later frame to specify an image. (The “B” stands for bi-predictive.) The frames that these non-intra-coded frames refer to may be either intra-coded or non-intra-coded.
In some video compression schemes, each frame is divided up into regions. In some compression schemes these regions are known as slices. Further, frames may be divided into regions due to use of interlaced encoding instead of progressive scan encoding. Like entire frames, regions, such as slices, may be intra-coded or non-intra-coded. An I-frame may be made up of I-slices, a P-frame made up of P-slices, and a B-frame made up of B-slices. However, frames may also intermix regions, such as slices, of various types. For example, a frame may include some regions that are intra-coded and some regions that are non-intra-coded.
With most known video compression techniques, including those that use temporal compression, image quality is lost each time the video is encoded or transcoded. The quality loss may occur, for example, because intra-coded images and the above-referenced residual error regions are often spatially compressed. During the encoding or transcoding process, techniques such as spatial compression techniques (e.g., discrete cosine transforms and chroma subsampling) are often performed such that some image quality is lost during encoding in order to save space. Quality loss that occurs when a video is encoded or transcoded may be noticeable to a viewer. The loss may be amplified if an already encoded video is decoded and then encoded again. Thus, a need exists for systems and methods that help to minimize the quality loss that occurs when video is encoded, transcoded, or otherwise processed.